package com.mycode.simplefactory02.chaos;

/**
 * 图标类库（未使用设计模式）
 * 存在问题：
 *   1、包含很多 if...else... 代码块，代码冗长、阅读难度、维护难度和测试难度越大，还会影响系统的性能，程序在执行过程中需要做大量的条件判断
 *   2、Chart 类的职责过重，既负责初始化和显示所有的图标对象，把各种图标对象的初始化和显示在一个类中实现，不利于类的重用和维护
 *   3、当需要增加新类型的图表时，必须修改 Chart 类的源代码，违反了开闭原则
 *   4、客户端只能通过 new 关键字来直接创建 Chart 对象，Chart类与客户端类耦合度搞，对象的创建和使用无法分离
 *   5、客户端在创建 Chart 对象之前，可能还需要进行大量初始化设置，例如设置图像的颜色、高度，Chart 类的构造函数中没有提供一个默认的配置，会导致客户端代码重复
 */
public class Chart {

    private String type;

    public Chart(Object[][] data, String type) {
        this.type = type;
        if (type.equalsIgnoreCase("histogram")) {
            // 初始化柱状图
        }
        else if (type.equalsIgnoreCase("pie")) {
            // 初始化饼状图
        }
        else if (type.equalsIgnoreCase("line")) {
            // 初始化折线图
        }
    }

    public void dispaly() {
        if (type.equalsIgnoreCase("histogram")) {
            // 显示柱状图
        }
        else if (type.equalsIgnoreCase("pie")) {
            // 显示饼状图
        }
        else if (type.equalsIgnoreCase("line")) {
            // 显示折线图
        }
    }
}
